package example.mapper;

import example.pojo.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface UserMapper {
    /**
     * 登录
     */
    SysUser login(@Param("account") String account, @Param("password") String password);

    /**
     * 添加用户
     */
    int add(SysUser user);

    /**
     * 修改用户信息
     */
    int upd(SysUser user);

    /**
     * 删除用户信息
     */
    int del(Integer id);


    /**
     * 根据用户ID或登录名查看用户信息
     */
    SysUser getUserByIdOrAccount(@Param("id") Integer id, @Param("account") String account);

    /**
     * 分页查询用户信息
     */
    List<SysUser> pageSelectUser(@Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("account") String account, @Param("roleId") Integer roleId);

    /**
     * 用户总记录数
     */
    int count(@Param("account") String account, @Param("roleId") Integer roleId);

    /**
     * 验证账号是否已存在
     */
    int accountExist(String account);

    /**
     * 判断绑定了指定角色id的用户
     */
    List<SysUser> getUserBindRoleId(Integer rid);

    /**
     * 删除指定的角色id的用户信息
     */
    int delUserByRoleId(@Param("id") Integer id);

    /**
     * 判断输入的旧密码
     */
    int checkOldPwd(@Param("id") Integer id, @Param("oldPassword") String oldPassword);

    /**
     * 修改密码
     */
    int updatePwd(@Param("id") Integer id, @Param("oldPassword") String oldPassword);
}
